#pragma once

#include <string>
#include <list>

struct CommandParameter;

static const std::wstring BLANK_SPACE = L" ";
static const std::wstring EmptyString = L"";

class CommandBuilder
{	
public:
	CommandBuilder(const std::wstring& command, const std::wstring& subCommand = EmptyString);
	~CommandBuilder();
	void addParameter(const std::wstring& param, const std::wstring& value = EmptyString);
	std::wstring build() const;
private:
	std::wstring _command;
	std::wstring _subcommand;
	typedef std::list<CommandParameter*> ParametersList;
	ParametersList _parameters;
};
